﻿using System;
using System.Collections.Generic;
using System.Text;

namespace InTaPLC
{
    // PLC采用ASCII通信模式，即将一个8bit的16进制数 分为两个ASCII码发送：如0x12-->0x01 0x02

    /// <summary>
    /// 从站地址：两个 ASCII 码；
    /// </summary>
    public enum 从站地址
    {
        Null = -1,     // 未指定正确地址
        PLC1 = 0x01,
        PLC2 = 0x02
    };

    /// <summary>
    /// 命令码：两个 ASCII 码；
    /// </summary>
    public enum 命令码
    {
        Null = -1,     // 未指定正确命令
        读非输入节点状态 = 0x01,
        读节点状态    = 0x02,
        读寄存器值    = 0x03,
        强制单节点状态 = 0x05,
        预设单寄存器值 = 0x06,
        强制多节点状态 = 0x0F,
        预设多寄存器值 = 0x10,
        报告从站地址   = 0x11,
        轮询时间内读写 = 0x17,
        异常码返回 = 0x81
    };

    /// <summary>
    /// 装置地址：即各个寄存器地址；4个 ASCII 码；
    /// </summary>
    public enum 起始地址
    {
        Null = -1,     // 未指定正确地址
        S = 0x0000,
        X = 0x0400,
        Y = 0x0500,
        T = 0x0600,
        M = 0x0800,
        C = 0x0E00,
        //D = 0x1000
        D = 0x1000

    };

    /// <summary>
    /// 异常码：两个 ASCII 码；
    /// </summary>
    public enum 异常码
    {
        Null = -1,     // 
        非法命令码 = 0x01,
        非法装置地址 = 0x02,
        非法装置值 = 0x03,
        校验和或指令出错 = 0x07
    };

    /// <summary>
    /// 节点置位/复位
    /// </summary>
    public enum 开关
    {
        Null = -1,
        开 = 0xFF00,
        关 = 0x0000
    }

}
